/**
  ******************************************************************************
  * @文件名           : bsp_gpio.c
  * @作者             : citunhk
  * @功能介绍         : GPIO输入输出驱动函数
  *	@日期             : 2022.10.31
  ******************************************************************************
  * @注意
  *
  * 本文件中不应调用上层文件
  *
  ******************************************************************************
  *更改记录
  *日期 修改人 修改内容
  *
  *
  *
  ******************************************************************************
  */
#include "bsp_gpio.h"

/**
* @函数名	BSP_GPIO_OutputOperate
* @功能	    设置引脚电平状态
* @入口参数	GPIOx 管脚号  GPIOx GPIO Port
*           PinMask 引脚号 LL_GPIO_PIN_0
						   LL_GPIO_PIN_1
						   LL_GPIO_PIN_2
						   LL_GPIO_PIN_3
						   LL_GPIO_PIN_4
						   LL_GPIO_PIN_5
						   LL_GPIO_PIN_6
						   LL_GPIO_PIN_7
						   LL_GPIO_PIN_8
						   LL_GPIO_PIN_9
						   LL_GPIO_PIN_10
						   LL_GPIO_PIN_11
						   LL_GPIO_PIN_12
						   LL_GPIO_PIN_13
						   LL_GPIO_PIN_14
						   LL_GPIO_PIN_15
						   LL_GPIO_PIN_ALL
*           command 引脚状态 PIN_SET
*                            PIN_RESET
*                            PIN_TOGGLE
* @返回值	无
*/
void BSP_GPIO_OutputOperate(GPIO_TypeDef *GPIOx, uint32_t PinMask, uint8_t command)
{
	if(command == PIN_SET)
	{
		LL_GPIO_SetOutputPin(GPIOx, PinMask);
	}
	else if(command == PIN_RESET)
	{
		LL_GPIO_ResetOutputPin(GPIOx, PinMask);
	}
	else if(command == PIN_TOGGLE)
	{
		LL_GPIO_TogglePin(GPIOx, PinMask);
	}
}

/**
* @函数名	BSP_GPIO_OutputOperate
* @功能	    读取引脚电平状态
* @入口参数	GPIOx 管脚号  GPIOx GPIO Port
*           PinMask 引脚号 LL_GPIO_PIN_0
						   LL_GPIO_PIN_1
						   LL_GPIO_PIN_2
						   LL_GPIO_PIN_3
						   LL_GPIO_PIN_4
						   LL_GPIO_PIN_5
						   LL_GPIO_PIN_6
						   LL_GPIO_PIN_7
						   LL_GPIO_PIN_8
						   LL_GPIO_PIN_9
						   LL_GPIO_PIN_10
						   LL_GPIO_PIN_11
						   LL_GPIO_PIN_12
						   LL_GPIO_PIN_13
						   LL_GPIO_PIN_14
						   LL_GPIO_PIN_15
						   LL_GPIO_PIN_ALL
* @返回值	引脚电平状态 0 低电平
*                       1 高电平
*/
uint8_t BSP_GPIO_InputRead(GPIO_TypeDef *GPIOx, uint32_t PinMask)
{
	if(LL_GPIO_ReadInputPort(GPIOx) & PinMask)
	{
	    return 1;
	}
	else
	{
	    return 0;
	}
}
